package
{
	import ball.TestBall;
	import flash.display.Graphics;
	import flash.display.Sprite;
	import flash.events.Event;	
	import map.SwirlMap;
	[SWF(width="800",height="600",backgroundColor="0xffffff",frameRate="30")]
	public class Zuma extends Sprite
	{
//-----------------------------------------------------------------------------------------------PUBLIC---------------------------------
													//================ Properties ===============
													
													//================ Public Methods ===========
		public function Zuma():void{
			initVar();
			initStage();
			createMap();
			initListener();
			
		}
//-----------------------------------------------------------------------------------------------PRIVATE--------------------------------													
													//================ Properties ===============
		private var map:SwirlMap;//地图，里面包含路线的point数据，以及图片的链接。以后如果需要用到多条路线，以及路线交叉重叠的情况，也需要在里面用变量标明。
		private var roadDatas:Array;//路线数据，有可能有 多条数据。
		private var ballList:Array;//放置球引用的数组；
		private var mapSpr:Sprite;//放置地图的地方；
		private var mapLoader:Sprite;//加载地图的loader;
		private var ballSpr:Sprite;	//放置运动球的容器。
		//private var bulletSpr:Sprite;     //用于发射子弹的物体的容器
													//================ Private Methods ==========
		private function frameHandler(evt:Event):void{
			if(ballList.length==0){
				var ball:TestBall=new TestBall();
				TestBall(ball).pos=roadDatas[0][0];
				TestBall(ball).roadData=roadDatas[0];
				TestBall(ball).speed=2;
				TestBall(ball).addSpeed=0;
				ballList.push(ball);
				ballSpr.addChild(ball);
			}else{
				for(var i:uint=0;i<ballList.length;i++){
					ballList[i].update();
				}
				if((ballList.length<=30)&&(ballList[ballList.length-1].pos>=80)){
					var tempBall:TestBall=new TestBall();
					tempBall.pos=roadDatas[0][0];
					tempBall.roadData=roadDatas[0];
					tempBall.speed=2;
					tempBall.addSpeed=0;
					ballList.push(tempBall);	
					ballSpr.addChild(tempBall);			
				}
			}
		}
		private function initVar():void{
			map=new SwirlMap();
			roadDatas=SwirlMap(map).getRoadData();
			ballList=new Array();
		}
		private function initStage():void{
			stage.scaleMode="noScale";
			mapSpr=new Sprite();
			stage.addChild(mapSpr);
			ballSpr=new Sprite();
			stage.addChild(ballSpr);
			//bulletSpr=new Sprite();
			//stage.addChild(bulletSpr);
		}
		/**
		 *必须重写initMap,以后需要加载图片，以及交叉等情况，都需要进行处理。 
		 * 
		 */		
		private function createMap():void{
			var gr:Graphics=mapSpr.graphics;
			gr.lineStyle(5,0,.5);
			for(var i:uint=0;i<roadDatas.length;i++){
				gr.moveTo(roadDatas[i][0].x,roadDatas[i][0].y);
				for(var m:uint=0;m<roadDatas[i].length-1;m++){
					gr.lineTo(roadDatas[i][m+1].x,roadDatas[i][m+1].y);
				}
			}
		}
		private function initListener():void{
			stage.addEventListener(Event.ENTER_FRAME,frameHandler);
		}
	}
}